package com.secsbrain.engine.client.iface;

import com.secsbrain.common.ResponseVo;
import com.secsbrain.engine.client.model.ProcessDeal;
import com.secsbrain.engine.client.model.ProcessDto;
import com.secsbrain.engine.client.model.StartProcessParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * 工单流程相关服务
 *
 * @author zhaoyi
 */
@FeignClient(value = "service-engine-${engine.env:dev}")
public interface WorkSheetFlowService {
	
    /**
	 * 功能描述: <br>
	 * 创建工单流程
	 *
	 */
	@RequestMapping(value = "/workSheetFlow/create", method = RequestMethod.POST)
	ResponseVo<ProcessDto> create(@RequestBody StartProcessParam startProcessParam);
	
	/**
	 * 功能描述: <br>
	 * 认领工单流程
	 *
	 * @return
	 */
	@RequestMapping(value = "/workSheetFlow/claim", method = RequestMethod.POST)
	ResponseVo<String> claim(@RequestBody ProcessDeal processDeal);
	
	/**
	 * 功能描述: <br>
	 * 结束工单流程
	 *
	 * @return
	 */
	@RequestMapping(value = "/workSheetFlow/finish", method = RequestMethod.POST)
	ResponseVo<String> finish(@RequestBody ProcessDeal processDeal);
	
	/**
	 * 功能描述: <br>
	 * 确认工单流程
	 *
	 * @return
	 */
	@RequestMapping(value = "/workSheetFlow/confirm", method = RequestMethod.POST)
	ResponseVo<String> confirm(@RequestBody ProcessDeal processDeal);
	
	/**
	 * 功能描述: <br>
	 * 转移工单流程
	 *
	 * @return
	 */
	@RequestMapping(value = "/workSheetFlow/transfer", method = RequestMethod.POST)
	ResponseVo<String> transfer(@RequestBody ProcessDeal processDeal);
	
}
